matlab读取.ts流数据问题

您所在的位置:网站首页 matlab udp通信 matlab读取.ts流数据问题

matlab读取.ts流数据问题

2023-03-12 23:06| 来源: 网络整理| 查看: 265

先说结论:

一定要用fread 'rb' 二进制的形式读取! fid=fopen(filename,'rb');

因为要做gnuradio,然后TS流的包比较稳定,都是188bytes,固首先研究单TS流的传输,这个时候找了一个github上的ts流文件http://www.w6rz.net/overflowqpsk_276_45.ts 这个文件大概200M左右,然后读取,首先用fileread进行读取, 读取.ts流文件 可以看到a的大小大概160M 检验一下是不是对的,因为同步字节为 0x47 = 71 对应ASCII里面的“G”; 利用find查找 可以发现不对,按道理应该在189、377的位置上发现“G”,但是差了几个,具体原因不知道为啥,因为这个视频是可以播放的,所以他本身肯定没有问题,就只能怀疑读取文件的过程出了问题。 这个时候本来想到单纯读取二进制文件看一看会不会成功, 故使用

fid=fopen('overflowqpsk_276_45.ts','rb'); c = fread(fid); b = find(c(1:2000)==71)

结果如下图: 可以看到这个数据是对的 c大概是200M的数据 因为0x47=71D。可以看到1+188*i的地方都出现了71(其他地方出现了是数据中刚好也是)。故得出结论,使用fread二进制方法读取



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3